# -*- coding: utf-8 -*-

# 语法糖/就是函数的修饰@/也就是装饰器
# 装饰器其实就是一个闭包，把一个函数当做参数然后返回一个替代版函数


def log(func):
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper

@log
def t1():
    print('test ..')

t1()

# 没有装饰器，相当于
# log(t1())
